The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time, computer systems have evolved into extremely sophisticated devices, and computer systems may be found in many different settings. Computer systems typically include a combination of hardware (such as semiconductors, integrated circuits, programmable logic devices, programmable gate arrays, and circuit boards) and software, also known as computer programs.
Years ago, computers were isolated devices that did not communicate with each other. But, today computers are often connected in networks, such as the Internet or World Wide Web, and a user at one computer, often called a client, may wish to access information at multiple other computers, often called servers, via a network. Searching is the primary mechanism used to retrieve information from the Internet. Therefore, improving as much as possible the performance of searching can have a significant impact on the collective time spent by individuals or organizations to find information. Technically speaking, improving search performance means decreasing the time taken for the user to find the desired information.
Decreasing retrieval time has two components. The first component is improving the performance of the software and hardware, so that the actual search time is almost instantaneous. Current technology has nearly made this a reality. Even free, open-source search engines perform at or near this level. The second component to decreasing retrieval time is to reduce the amount of time users take to determine the correct result from among the multitude of returned results. This is where the bulk of the improvement can be realized. For example, when search results are returned from a Web-based search engine, they are usually returned as a linear list of ranked results that have no context within the information structure being viewed, which causes the user difficulty in selecting the result of interest from among the results. Further, in many cases, the results are ambiguous, especially if the title of the pages are similar.
Abstracts are the primary mechanism to help users select from among the top-ranked search results. But, abstracts show information only on one specific page of information; they do not show how the information fits with other pages in a hierarchy or linear progression, such as a tutorial. To remove ambiguity, the user must select the link and view the resultant information to determine if the link points to the desired information.
Another mechanism that is often used in conjunction with abstracts is the display of the URL (Universal Resource Locator) associated with the search results. The URL is an address of the file on the server that contains the search results. The URL may include the domain name and the directory and subdirectory structure where the file is located, which is not necessarily meaningful to the user.
Another mechanism that is used in conjunction with abstracts is categories. For example, some search engines show the category or class of the search result, which helps the user better target the result that is the best. For example, a search for washers might show a result such as: home appliance>washing machine, with “home appliance” being the category to which “washing machine” belongs, which provides contextual information.
Providing contextual information with the results can reduce retrieval times for the search by more quickly allowing the user to remove the ambiguity associated with the top-ranked search results. When the results are returned from the search, they are shown in context of the taxonomy currently being viewed by the user. This method has the advantage that users can see at a glance whether the results are in the category being sought. For example, assume that a Java programmer is searching for a description of the integer data type and the information repository includes C++, C, FORTRAN, and Java programming language information. Example search results, with each representing a link, are:
1. Integer
2. Data types: integers
3. Defining data types as integers.
But, from the above search results, it is not clear which of the search results are relevant to C++, C, FORTRAN, or Java since each of them may have an integer data type. But, when contextual information is included with the search results, the best search result becomes immediately clear:
Programming languagesJavadata typesintegeror programming languages/Java/data types/integer.
Unfortunately, adding this contextual information in with the search results listing has several disadvantages: it increases navigation difficulty by cluttering the display, it reduces the number of results that can be shown at one time, and it reduces the length of the abstract that can be shown.
Thus, without a better way to present search results, users will continue to need to search through the results listing, looking for the relevant results.